﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Abp.Application.Services;
using Abp.Application.Services.Dto;
using AVISOutBound.SSOServer.Payment.Dto;

namespace AVISOutBound.SSOServer.Payment
{
    /// <summary>
    /// 退款单服务
    /// </summary>
    public interface IRefundOrderAppService: IApplicationService
    {
        /// <summary>
        /// 申请退款
        /// </summary>
        /// <param name="input">输入参数</param>
        /// <returns></returns>
        Task Apply(CreateRefundOrderInput input);

        /// <summary>
        /// 同意退款
        /// </summary>
        /// <param name="refundOrderNo">退款单号</param>
        /// <returns></returns>
        Task Agree(string refundOrderNo);

        /// <summary>
        /// 拒绝退款
        /// </summary>
        /// <param name="input">输入参数</param>
        /// <returns></returns>
        Task Reject(RejectRefundInput input);

        /// <summary>
        /// 获取退款单分页列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        PagedResultDto<RefundOrderOutput> GetPaged(GetRefundOrderInput input);
    }
}
